The present invention relates generally to process control networks and, more specifically, to dynamically selecting hardware units or equipment for use in a process, such as a batch process, during a run of the process.
Process control networks, such as those used in chemical, petroleum or other processes, generally include a centralized process controller communicatively coupled to one or more field devices which may be, for example, valve positioners, switches, sensors (such as temperature, pressure and flow rate sensors), etc. These field devices may perform physical control functions within the process (such as opening or closing a valve), may take measurements within the process for use in controlling the operation of the process or may perform any other desired function within the process. Process controllers have historically been connected to field devices via one or more analog signal lines or buses which may carry, for example, 4-20 mA (milliamp) signals to and from the field devices. More recently, however, the process control industry has developed a number of standard, open, digital or combined digital and analog communication protocols such as the FOUNDATION(trademark) FIELDBUS (hereinafter xe2x80x9cFieldbusxe2x80x9d), HART(copyright), PROFIBUS(copyright), WORLDFIP(copyright), Device-Net(copyright) and CAN protocols which can be used to implement communications between a controller and field devices. Generally speaking, the process controller receives signals indicative of measurements made by one or more field devices and/or other information pertaining to the field devices, uses this information to implement a typically complex control routine and generates control signals which are sent via the signal lines or buses to the field devices to thereby control the operation of the process.
Certain types of process control networks, such as those used in batch processes, typically include multiple sets of replicated equipment designed to have the same or similar equipment which performs essentially the same function within the processes. Thus, for example, a cookie manufacturing plant may have multiple sets of mixing equipment, multiple sets of baking equipment, and multiple sets of packaging equipment, with some or all of the individual mixers being capable of operating in parallel and of being connected to operate in series with some or all of the baking equipment and the packaging equipment. In such a system, it is desirable to be able to use the same control algorithm or routine to control the operation of any particular set of replicated equipment to thereby reduce the number of control routines that must be created and stored within the controller. However, these control algorithms must be written so that, when executed, they specify the equipment of a particular unit being used at the time. Typically, however, a batch procedure preforms a number of different steps or stages in sequence, finishing the first stage before beginning the second stage. Thus, in the cookie manufacturing plant described above, the batch procedure runs a first sub-process or step to control the mixing equipment, then runs a second sub-process to run the baking equipment on the product made by the mixing equipment and then runs a third sub-process that controls the packaging equipment to package the product produced by the baking equipment.
In prior process control systems, the user typically has to specify which unit or set of units are to be used in each stage or unit procedure of a particular batch run at the time that the batch procedure or recipe (i.e., the general batch instructions) are written or, alternatively, at the time the batch procedure first begins to operate, i.e., at the time that the first stage or unit procedure of the batch process is started. This, of course, means that the user has to select the equipment or units that are to be used in the later stages or unit procedures of the batch run, which are sometimes not needed for hours or even days after the time that the batch procedure is first begun, at the time that the batch procedure is first written or first started. This preselection means that the selected equipment is tied up and cannot be used until the entire batch run is complete, or at least until the portion which uses the designated equipment has completed. This preselection also requires that the designated units be ready and available (i.e., up and running) when the stage of the batch process that uses those units begins, which can lead to problems in completing the batch run due to equipment failure within the designated units, etc. This preselection also means that the user or operator has to schedule equipment well in advance of its use, which reduces the operator""s options in scheduling other runs of the same batch process or runs of other batch processes that might use that equipment in the meantime.
While some known control systems are capable of enabling a user to manually select a particular unit to perform a particular part of an overall batch process at the time that the particular part or sub-process of the batch procedure is to begin, these systems do not automatically select a group of candidate units that are capable of being selected and do not prioritize the units which are available. As a result, manual selection of the units at the time that the units are to be used still requires a lot of forethought and knowledge on the part of the operator or user to assure that the right unit is being selected at the appropriate time.
A process control system includes one or more process control routines that dynamically select one or more of the units (or sets of equipment) to be used during any unit stage or unit procedure thereof based on user input, predetermined priorities or criteria related to properties of the available units, previous unit selection decisions made during the run of the process, equipment train information reflecting pre-established connection interrelationships between different units, information pertaining to the classes into which the units belong, etc. Selection of a unit can be performed at the time that the unit is to be used, instead of when the batch run is begun, which enables dynamic scheduling of the different units which, in turn, allows better use of the different units within a system running multiple processes or batches. This dynamic selection also alleviates the need to assure that a certain unit is on-line and available at a particular time merely because a batch run specifying that unit for a downstream sub-process was begun at some earlier time.
A general batch procedure is written to include one or more unit procedures (i.e., a set of operations to be performed on a single unit). One or more of the unit procedures includes a call to a dynamic unit selection procedure which determines a set of candidate units that can be used for the sub-process being performed based on an equipment train or process cell in which the batch procedure is being run. The dynamic unit selection procedure then identifies suitable units for the particular unit procedure of the batch run being implemented based on properties of the units, previous selection criteria, user commands, etc. The dynamic selection routine may then prioritize the suitable units based on user provided priority information or other criteria previously established for these units. The dynamic selection procedure then acquires a unit for use by going through the prioritized list of suitable units and seeing if each consecutive unit on the prioritized list is on-line and available, i.e., not currently being used and otherwise available for use. The dynamic selection procedure acquires the first unit that is available and then returns the name and other information pertaining to this unit to the unit procedure, which begins to perform operations using the newly selected unit.